<html>
    <head>
        <title>安全鉴权模式介绍</title>
    </head>
    <body>
        <script>
            // https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/getting_started/signature-verify.html

            /*
                一、概述

                          微信开放的接口通信鉴权体系，使用了数据加密与签名的机制，放置数据泄露与篡改，且具备不可否认性。

                          开发者可在 "小程序管理后台" 的 "API安全" 模块，为应用配置中 "密钥" 与 "公钥"，

                          以此来保障开发者应用和微信开放平台交互的安全性。

            */

            /*
                二、签名与验签

                            在请求API的过程中，为了保护数据的安全，开发者在应用中使用自己的私钥生成请求的签名 (签名算法支持RSA及SM2),

                            平台会在收到请求后使用 "应用的公钥" 进行 "验签"，

                            开发者则使用 "平台证书中的公钥"  对平台API返回的数据进行验签，来保证互相请求的真实性和数据的完整性。


                        1、应用公钥

                                公钥是指 "应用公钥"，开发者通过平台工具生成公钥信息，并保存在API安全配置中，用于平台进行接口接口调用时的验签。

                        2、应用私钥

                               私钥是指应用私钥，开发者可以通过平台工具生成私钥信息，用于生成请求的签名，请妥善保管好私钥文件，务必自行保障其安全性。

                        3、平台证书

                               平台证书是指包含微信开放平台公钥信息的证书，用于开发者验证API返回数据的平台签名。

                               开发者可在配置应用公钥后在API安全模块下载。


                        签名验签流程图：  
                        
                                https://res.wx.qq.com/op_res/6tyEfxGZFG5QWUQ9PWbhEh4Tu02uKQYlx_9ATfouxbIOoLw1Wkn6FpPfKB6I-6g8R9vTmFi56HFCKfhOXYJ4XQ
            */

            /*
                三、接口内容加密介绍

                            平台支持对接口的请求内容和响应内容进行 AES256/SM4 加密（资源上传类API暂不支持加密）

                            ，加密后，在网络上传输的接口报文内容将会由明文内容变为密文内容，可以大幅提升接口内容传输的安全性。 

                             接口数据加密与签名，可以在接口数据泄露的情况下，确保接口内容保密且不被篡改。 开发者应先加密请求数据，然后对密文签名。
            */

            /*
                四、生成并配置密钥

                           https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/getting_started/signature-verify.html#%E4%B8%89%E3%80%81-%E7%94%9F%E6%88%90%E5%B9%B6%E9%85%8D%E7%BD%AE%E5%AF%86%E9%92%A5
                           
                           1、进入配置页面

                                      开发者登录小程序管理后台，可在“开发 - 开发管理 - 开发设置 - API安全”进行API密钥的配置。
                                      
                                      https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/getting_started/signature-verify.html#_1-%E8%BF%9B%E5%85%A5%E9%85%8D%E7%BD%AE%E9%A1%B5

                           2、配置接口内容加密密钥

                                      可在API对称密钥处进行配置，点击“随机生成密钥”后，再点击“下载密钥”进行密钥下载
                                      
                                      （如开发者已准备好密钥，可直接将已准备好的密钥填充进输入框），验证无误后点击“确认”，即可完成对称密钥的配置。

                                      https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/getting_started/signature-verify.html#_2-%E9%85%8D%E7%BD%AE%E6%8E%A5%E5%8F%A3%E5%86%85%E5%AE%B9%E5%8A%A0%E5%AF%86%E5%AF%86%E9%92%A5

                           3、配置应用私钥和应用公钥

                                      可在API非对称密钥处进行配置，点击“随机生成密钥对”后，再点击“下载私钥”进行私钥下载，
                                      
                                      请妥善进行保管（如开发者已准备好密钥对，可直接将已准备好的应用公钥填充进输入框），验证无误后点击“确认”，即可完成应用公钥的上传。


                          4、获取平台证书


                                    开发者配置完应用公钥后，需下载开放平台证书，用于后续接口回调时的验签操作。  在此页面，也可查看对应的 "API密钥" 及 "密钥编号"。

                                    
            */
        </script>
    </body>
</html>